using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Blogs.LazyFox.Models;
using System;
using System.Linq;

namespace Blogs.LazyFox.Data
{
    public static class DbInitializer
    {
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var context = new BlogsContext(
                serviceProvider.GetRequiredService<DbContextOptions<BlogsContext>>()))
            {
                context.Database.EnsureCreated();

                if (context.Blogs.Any())
                {
                    return;
                }
                // var user1 = new PersonModel
                // {
                //     Id = "23333",
                //     UserName = "BiliBili",
                //     PasswordHash = "123456",
                //     HeadImage = "simple.jpg",
                //     Remark = "bilibili",
                //     RegistTime = DateTime.Parse("1978-1-23"),
                // };
                // var user2 = new UserModel
                // {
                //     Uid = 101L,
                //     Passward = "MiyazonoKaori0704",
                //     HeadImage = "Kaori.jpg",
                //     Remark = "piano",
                //     RegistTime = DateTime.Parse("2020-01-01"),
                // };
                // var user3 = new UserModel
                // {
                //     Uid = 102L,
                //     Name = "陆仁甲",
                //     Passward = "123456",
                //     HeadImage = "",
                //     Remark = "",
                //     RegistTime = DateTime.Parse("2021-01-01"),
                // };

                // var tag1 = new TagModel
                // {
                //     Lid = 100001,
                //     Name = "搞笑",
                //     CraeteTime = DateTime.Parse("2008-1-1")
                // };
                // var tag2 = new TagModel
                // {
                //     Lid = 100002,
                //     Name = "休闲",
                //     CraeteTime = DateTime.Parse("2008-1-1")
                // };
                // var tag3 = new TagModel
                // {
                //     Lid = 100003,
                //     Name = "治愈",
                //     CraeteTime = DateTime.Parse("2008-1-1")
                // };

                // context.Tags.AddRange(
                //     tag1, tag2, tag3
                // );

                // var blog1 = new BlogModel
                // {
                //     Bid = 10000,
                //     title = "HelloWorld",
                //     Introduction = "Initialize auto create",
                //     CraeteTime = DateTime.Now,
                //     Author = user1
                // };
                // var blog2 = new BlogModel
                // {
                //     Bid = 10001,
                //     title = "HelloWorld",
                //     Introduction = "Initialize auto create",
                //     CraeteTime = DateTime.Now,
                //     Author = user1
                // };
                // var blog3 = new BlogModel
                // {
                //     Bid = 10002,
                //     title = "HelloWorld",
                //     Introduction = "Initialize auto create",
                //     CraeteTime = DateTime.Now,
                //     Author = user2
                // };
                // var blog4 = new BlogModel
                // {
                //     Bid = 10003,
                //     title = "HelloWorld",
                //     Introduction = "Initialize auto create",
                //     CraeteTime = DateTime.Now,
                //     Author = user2
                // };
                // var blog5 = new BlogModel
                // {
                //     Bid = 10004,
                //     title = "HelloWorld",
                //     Introduction = "Initialize auto create",
                //     CraeteTime = DateTime.Now,
                //     Author = user2
                // };
                // var blog6 = new BlogModel
                // {
                //     Bid = 10005,
                //     title = "HelloWorld",
                //     Introduction = "Initialize auto create",
                //     CraeteTime = DateTime.Now,
                //     Author = user3
                // };
                // var blog7 = new BlogModel
                // {
                //     Bid = 10006,
                //     title = "HelloWorld",
                //     Introduction = "Initialize auto create",
                //     CraeteTime = DateTime.Now,
                //     Author = user3
                // };
                // var blog8 = new BlogModel
                // {
                //     Bid = 10007,
                //     title = "HelloWorld",
                //     Introduction = "Initialize auto create",
                //     CraeteTime = DateTime.Now,
                //     Author = user3
                // };

                // user1.AuthoredBlogs = new List<BlogModel> { blog1, blog2 };
                // user2.AuthoredBlogs = new List<BlogModel> { blog3, blog4, blog5 };
                // user3.AuthoredBlogs = new List<BlogModel> { blog6, blog7, blog8 };
                // blog3.Tags = new List<TagModel>{ tag1,tag2,tag3};

                // context.Blogs.AddRange(
                //     blog1, blog2, blog3, blog4, blog5, blog6, blog7, blog8
                // );


                // context.Users.AddRange(
                //     user1, user2, user3
                // );
                // context.SaveChanges();
            }
        }
    }
}